1. Technical Field
The invention is related to echo cancellation, and in particular, to client-side echo cancellation wherein each client receives a common encoded signal representing a sum of signals from multiple clients, and wherein each client locally cancels its own local signal from the common encoded signal prior to local playback.
2. Related Art
Voice communication over networks such as the Internet is rapidly evolving into a global communications network. For one-to-one communication between two clients, there are many simple ways to enable two-way voice communications. However, as soon as more than two clients enter into a multi-party conference call, voice communications become more complicated.
The simplest multiparty audio conference architecture is generally referred to as “full-mesh,” where all clients directly communicate to each other. One major advantage of this architecture is its high audio quality because the audio packets are encoded once and require only one hop from the sender to the receiver. Further, since the packets travel directly between the sender and the receiver, the service provider incurs no additional cost after the connections have been established. However in full-mesh, the bandwidth consumption and computation load on each client increase proportionally to the size of the conference.
Alternatively, centralized architectures are often implemented using a star-shaped topology where all the clients connect to a central MCU (Multipoint Control Unit), which is responsible for mixing the audio signals received from each local client, then sending an encoded signal sum back to all the clients for local decoding and playback. However, in order to prevent local speakers from hearing their own voices or other local audio signals (as a delayed “echo”), traditional MCUs operate by producing and encoding a different mixed signal for each local client. Specifically, the encoded signal sent to each individual client contains only the signals from all of the other clients. While this technique works well for a relatively few number of clients, the CPU load and transmission bandwidth requirements of the MCU increase in direct proportion to the number of clients in the conference. Consequently, the performance of such systems can begin to degrade as the number of clients increase.